package com.github.shiqiyue.app.common.utils;


import com.github.shiqiyue.app.common.enums.IBaseEnum;
import org.apache.commons.lang3.StringUtils;

/**
 * 枚举工具类
 *
 * @author zyw
 * @date 2019/2/23
 */
public class EnumUtil {

    /***
     * 根据index 返回指定枚举值的 name
     * @param values
     * @param index
     * @param <T>
     * @return
     */
    public static <T extends IBaseEnum> String getNameByValue(T[] values, Integer index) {
        T value = getEnumByValue(values, index);
        if (value == null) {
            return null;
        }
        return value.getName();
    }


    /***
     * 通过index 获取枚举值
     * @param values
     * @param index
     * @param <T>
     * @return
     */
    public static <T extends IBaseEnum> T getEnumByValue(T[] values, Integer index) {
        if (values == null || index == null) {
            return null;
        }
        for (T item : values) {
            if (item.getValue() == index.intValue()) {
                return item;
            }
        }
        return null;
    }

    /***
     * 通过name获取枚举值
     * @param values
     * @param name
     * @param <T>
     * @return
     */
    public static <T extends IBaseEnum> T getEnumByName(T[] values, String name) {
        if (values == null || StringUtils.isBlank(name)) {
            return null;
        }
        for (T item : values) {
            if (name.equals(item.getName())) {
                return item;
            }
        }
        return null;
    }
}



